$(function(){
	var cls=$("#classGrid");
	var ctag=0;
	//初始化
	cls.treegrid({
		url:'classes/stuclatree',
		fit:true,
		singleSelect:false,
		fitColumns:true,
		rownumbers:true,
		pagination : true,// 是否显示分页栏
		idField : 'id',
		treeField : 'shadowName',
		columns : [ [ {
			field : 'shadowName',
			title : '班级名称',
			width : 100,
		},{
			field : 'classType',
			title : '班级类型',
			align : 'center',
			width : 100,
			formatter:function(row,rec){
				if(rec.classType =='女'){
					 return '<img src="public/images/female.png" title="女生">';
				}else if(rec.classType =='男'){
					 return '<img src="public/images/male.png" title="男生">';
				}else{
					return rec.classType;
				}
				return rec.classType;
			}
		}, {
			field : 'shadowNum',
			title : '开班人数',
			align : 'center',
			width : 100,
		}, {
			field : 'openShadowTime',
			title : '开班时间',
			align : 'center',
			width : 100,
			
		}, {
			field : 'monitor',
			title : '部门经理',
			align : 'center',
			width : 100,
			formatter:function(row,rec){
				if(rec.monitor == null || rec.monitor == ''){
					if(rec.shadowNum == null || rec.shadowNum == ''){
						
					}else{
						return "暂无";
					}
				}else{
					return rec.monitor;
				}
			}
		}, {
			field : 'shadowClassTeacher',
			title : '班主任',
			align : 'center',
			width : 100
		}, {
			field : 'shadowTeacher',
			title : '教员',
			align : 'center',
			width : 100
		},{
			field : 'ac',
			title : '操作',
			width : 180,
			align : 'center',
			formatter:function(value,row,index){
				if(row.shadowNum == null){
					var bts = [];
					bts.push('<a data-id="'+row.shadowId+'" data-title="'+row.shadowName+'" data-index="'+index+'" class="ctr zb">转班</a>');
					bts.push('<a data-id="'+row.shadowId+'" data-index="'+index+'" class="ctr tx">退学</a>');
					bts.push('<a data-id="'+row.shadowId+'" data-index="'+index+'" class="ctr delete">开除</a>');
					return bts.join('');
				}else{
				var bts = [];
				/*bts.push('<a data-id="'+row.shadowId+'" data-index="'+index+'" class="ctr xq">详情</a>');*/
				bts.push('<a data-id="'+row.shadowId+'" data-index="'+index+'" class="ctr add">添加</a>');
				bts.push('<a data-id="'+row.shadowId+'" data-index="'+index+'" class="ctr edit">编辑</a>');
				bts.push('<a data-id="'+row.shadowId+'" data-index="'+index+'" class="ctr delete">删除</a>');
				bts.push('<a data-id="'+row.shadowId+'" data-index="'+index+'" class="ctr by">毕业</a>');
				return bts.join('');
				}
			}
		} ] ],
		onLoadSuccess : function(row, data){
			//获取返回json对象所有根节点班级
			var parent = cls.treegrid('getRoots');
			for(var i = 0;i<parent.length;i++){
				if(parent.length>1){
					if(ctag == 1){
					}else{
						cls.treegrid('collapse',parent[i].id);
					}
				}else{
					cls.treegrid('expandTo',parent[i].id);
				}
			}
			//查找所有节点班级学生
			var none = cls.treegrid('getChildren');
			//获取学生名字id
			var claname = $("#classname");
			var nid; 
			for(var j = 0;j<none.length;j++){
				cls.treegrid('unselect',none[j].id);
				if(claname.val() !='' && claname.val() != null){
					var tag=claname.val();
					if(none[j].shadowName.indexOf(tag) != -1){
						cls.treegrid('select',none[j].id);
					}
				}
			}
		},
		onLoadError : function(row, data){
			alert("数据加载失败，重新登录");
		},
		toolbar:[
		     {
		    	 iconCls:'icon-add',
		    	 text:"添加班级",
		    	 handler:function(){
		    		 addclass();
		    	 }
		     }
		         ]
	});
	//班级学生名
	var classname = $("#classname");
	//班级类型名
	var classtype = $("#classtype");
	//班级名
	var claname = $("#claname");
	//班主任
	var classteacheremp = $("#classteacheremp");
	//教员
	var teacheremp = $("#teacheremp");
	//检索按钮时间
	$("#classSearch").on("click",function(){
		if((claname.val() == null || claname.val() == '') &&
		   (classtype.val() == null || classtype.val() == '') &&
		   (classname.val() == null || classname.val() == '')){
			ctag = 0;
		}else if((claname.val() == null || claname.val() == '') &&
				 (classname.val() == null || classname.val() == '')){
			ctag = 0;
		}else if((claname.val() == null || claname.val() == '') &&
				 (classname.val() != null || classname.val() != '')){
			ctag = 1;
		}else{
			ctag = 0;
		}
		cls.treegrid("load",{
			classType:classtype.val(),
			shadowName:"%"+classname.val()+"%",
			monitor:claname.val(),
			shadowClassTeacher:classteacheremp.val(),
			shadowTeacher:teacheremp.val()
		});
	});
	
	var form = $("#calssSearchForm");
	$("#classReset").on('click', function() {
		ctag = 0;
		form.form('clear');
		// 清除查询参数
		cls.treegrid("load", {});
	});  
	
	
	var gridPanel = cls.datagrid("getPanel");
	gridPanel.on("click", "a.xq", function() {
		var index = this.dataset.index;
		// 如果只有下标，没有id的情况，要获取id
		var rows = cls.datagrid("getRows");
		// 同下标获取对应行的数据对象
		var id = rows[index].id;
		var tab=$("#tabs").tabs('getSelected');
		var tabs=$("#tabs");
		var content = '<div scrolling="auto" frameborder="0"  style="width:100%;height:100%;"></div>';     
		if(tabs.tabs("exists","学员信息")){
			tabs.tabs("select", "学员信息")
		}else{
			  tabs.tabs('update',{   
				  				tab:tab,
								options: {
									closable:true,
									title: '班级管理',
									content:content, 
									 href:'/classes/formal_student'+"/"+id // the new content URL
								}
	                     });
			  tab.panel('refresh', '/classes/formal_student'+"/"+id);
		}
		
	
	}).on("click", "a.edit", function() {
		// 获取data-xxx绑定的标签属性数据
		var index = this.dataset.index;
		var id = this.dataset.id;
		 addclass(id);
	}).on("click", "a.add", function() {
		// 获取data-xxx绑定的标签属性数据
		var index = this.dataset.index;
		var id = this.dataset.id;
		out(id);
	}).on("click", "a.zb", function() {
		// 获取data-xxx绑定的标签属性数据
		var index = this.dataset.index;
		var id = this.dataset.id;
		var title = this.dataset.title;
		transferclass(id,title);
	}).on("click", "a.marge", function() {
		var index = this.dataset.index;
		// 如果只有下标，没有id的情况，要获取id
		var rows = cls.datagrid("getRows");
		// 同下标获取对应行的数据对象
		var id = rows[index].id;
		 margeclass(id)
	}).on("click", "a.by", function() {
		// 获取data-xxx绑定的标签属性数据
		var index = this.dataset.index;
		var id = this.dataset.id;
		$.messager.confirm('提示','该班级确定毕业',function(r){
	    if (r){
			$.get("classes/graduation/" + id, function(rs) {
				if (rs.success) {
					// 刷新表格
					cls.treegrid("reload");
					$("#graduateGrid").treegrid("reload");
				} else {
					$.message.alert("提示", rs.message);
				}
			});
		}
		});
	}).on("click", "a.tx", function() {
		// 获取data-xxx绑定的标签属性数据
		var index = this.dataset.index;
		var id = this.dataset.id;
		$.messager.confirm("提示", "您确定执行该操作?", function(r) {
			// 点击了确定按钮，r返回的结果为true
			if (r) {
				$.get("classes/tx/" + id, function(rs) {
					if (rs.success) {
						// 刷新表格
						cls.treegrid("reload");
					} else {
						$.message.alert("提示", rs.message);
					}
				});
			}
		});
	}).on("click", "a.delete", function() {
		// 获取data-xxx绑定的标签属性数据
		var index = this.dataset.index;
		var id = this.dataset.id;
		$.messager.confirm("提示", "您确定执行该操作?", function(r) {
			// 点击了确定按钮，r返回的结果为true
			if (r) {
				$.get("classes/deletestu/" + id, function(rs) {
					if (rs.success) {
						// 刷新表格
						cls.treegrid("reload");
					} else {
						$.message.alert("提示", rs.message);
					}
				});
			}
		});
	});
	/**
	 * 用户表单，新建和编辑都调用此方法
	 */
	function addclass(id) {
		// 创建窗口
		var dialog = $("<div/>").dialog({
			href :'classes/addclass'+ (id ? ("/" + id) : ""),
			title : "班级信息",
			height : 420,
			width : 670,
			modal : true,
			onClose : function() {
				// 窗口关闭的同时销毁此窗口
				$(this).dialog("destroy");
			},
			buttons : [ {
				iconCls : 'icon-save',
				text : '提交',
				align : 'center',
				handler : function() {
					// 获取到表单对象
					var classForm = $("#classForm");
					// 校验表单
					if (classForm.form('validate')) {
						// serialize方法可以获取到表单所有数据
						$.post("classes/save", classForm.serialize(), function(rs) {
							if (rs.success) {
								//刷新数据表格
								cls.treegrid("reload");
								//关闭窗口
								dialog.dialog("close");
							} else {
								$.messager.alert("提示", rs.message);
							}
						});
					}
				}
			},{
				iconCls : 'icon-undo',
				text : '取消',
				handler : function(){
					//关闭窗口
					dialog.dialog("close");
				}
			}
			]
		});
	}
	
	/**
	 * 转班
	 */
	function transferclass(id,title) {
		// 创建窗口
		var dialog = $("<div/>").dialog({
			href :'classes/transferclass'+ (id ? ("/" + id) : ""),
			title :  title,
			height : 220,
			width : 400,
			modal : true,
			onClose : function() {
				// 窗口关闭的同时销毁此窗口
				$(this).dialog("destroy");
			},
			buttons : [ {
				iconCls : 'icon-save',
				text : '提交',
				align : 'center',
				handler : function() {
					var oldclass = $("#oldclass");
					var newclass = $("#newclass");
					var id = $("#sid");
					var newcla = newclass.val();
					var sid = id.val();
					if(oldclass.text() == newcla){
						$.messager.alert("提示", "班级相同不需要转班");
						return ;
					}else{
						$.messager.confirm('提示','该学生确定要转班吗',function(r){
						    if (r){	
						    	$.post("classes/savetransferclass/"+sid+"/"+newcla, null, function(rs) {
								if (rs.success) {
									//刷新数据表格
									cls.treegrid("reload");
									//关闭窗口
									dialog.dialog("close");
								} else {
									$.messager.alert("提示", rs.message);
								}
							});
						    }
							});
					}
				}
			},{
				iconCls : 'icon-undo',
				text : '取消',
				handler : function(){
					//关闭窗口
					dialog.dialog("close");
				}
			}
			]
		});
	}
	function margeclass(id) {
		// 创建窗口
		var dialog = $("<div/>").dialog({
			href : 'marge_class.jsp' + (id ? ("/" + id) : ""),
			title : "合并班级",
			height : 200,
			width : 400,
			modal : true,
			onClose : function() {
				// 窗口关闭的同时销毁此窗口
				$(this).dialog("destroy");
			},
			buttons : [ {
				iconCls : 'icon-save',
				text : '提交',
				align : 'center',
				handler : function() {
					// 获取到表单对象
					var userForm = $("#userForm");
					// 校验表单
					if (userForm.form('validate')) {
						// serialize方法可以获取到表单所有数据
						$.post("user/save", userForm.serialize(), function(rs) {
							if (rs.success) {
								//刷新数据表格
								cls.datagrid("reload");
								//关闭窗口
								dialog.dialog("close");
							} else {
								$.messager.alert("提示", rs.message);
							}
						});
					}
				}
			},{
				iconCls : 'icon-undo',
				text : '取消',
				handler : function(){
					//关闭窗口
					dialog.dialog("close");
				}
			}
			]
		});
	}
	
	function out(id) {
		// 创建窗口
		var dialog = $("<div/>").dialog({
			href: "classes/addfamentsutdent"+ (id ? ("/" + id) : ""),
			title: "添加学生",
			height: 429,
			width: 712,
			modal: true,
			onClose: function() {
				 $.get("classes/stuobjclear", null, function(rs) {});
				$(this).dialog("destroy");
				
			},
			buttons : [ {
				iconCls : 'icon-save',
				text : '确定',
				align : 'center',
				handler : function() {
					// 获取到表单对象
					var classForm = $("#classForm");
					// 校验表单
					if (classForm.form('validate')) {
						// serialize方法可以获取到表单所有数据
						$.post("classes/saveaddstu"+ (id ? ("/" + id) : ""), classForm.serialize(), function(rs) {
							if (rs.success) {
								//刷新数据表格
								cls.treegrid("reload");
								//关闭窗口
								dialog.dialog("close");
							} else {
								$.messager.alert("提示", rs.message);
							}
						});
					}
				}
			},{
				iconCls : 'icon-undo',
				text : '取消',
				handler : function(){
					//关闭窗口
					dialog.dialog("close");
				}
			}
			]

		});
	}
});
